﻿//2009-09-06添加
//作者：tigerleq
//构造界面显示支持jquery.tablesorter.js

//当鼠标进入或退出表体一行时样式发生变化，但是选中行未发生变化
function TableRowMove(tbody) {
    tbody.find("tr").hover(function() { if (!$(this).hasClass("tr_selectStyle")) { $(this).addClass("tr_hoverStyle"); } },
                          function() { if (!$(this).hasClass("tr_selectStyle")) { $(this).removeClass("tr_hoverStyle"); } });
}

//移出表体里的行
function TableRowRemove(tb_tbody) {
    tb_tbody.empty();
}

//表体力的行单击时，执行事件
function TableRowClick(tb_tbody, do_function) {
    tb_tbody.find("tr").click(function() {
        if ($(this).attr("NO") != null) {
            TableRowSelectRow(tb_tbody, $(this));
            eval(do_function)($(this)); //把单鼠标单机后要执行的事件传过来执行
        }
    });
}

//当一行双击时发生
function TableRowDoubleClick(tb_tbody, do_function) {
    tb_tbody.find("tr").each(function() {
        $(this).dblclick(function() {
            if ($(this).attr("NO") != null) {
                TableRowSelectRow(tb_tbody, $(this));
                eval(do_function)($(this)); //把单鼠标单机后要执行的事件传过来执行
            }
        });
    });
}

//标记选中行为选中状态
function TableRowSelectRow(tb_tbody, select_tr) {
    tb_tbody.find("tr").each(function() {
        if ($(this).hasClass("tr_selectStyle")) {
            $(this).removeClass("tr_selectStyle");
            //$(this).addClass("tr_moveout");
        }

        if ($(this).hasClass("tr_hoverStyle")) {
            $(this).removeClass("tr_hoverStyle");
            //$(this).addClass("tr_moveout");
        }
        
    });
    //select_tr.removeClass("tr_moveout");
    select_tr.addClass("tr_selectStyle");
}


//-----主要使用下面两个函数
//清空一个表的表体
function TableSorter_Tbody_Remove(table) {
    TableRowRemove(table.find("tbody").eq(0));
}


//注册一个表
function TableSorter_BodyRegist(tb_tbody, select_tr, do_function) {
    
    if (select_tr == null || select_tr.attr("NO") == null) {
        select_tr = tb_tbody.find("tr:first");

    }
    var falg = true;
    tb_tbody.find("tr").each(function() {
        if (select_tr != null && $(this).attr("NO") != null && select_tr.attr("NO") == $(this).attr("NO") && falg == true) {

            //修正选择值
            select_tr = $(this);
            falg = false;
        }

    });

    if (falg == true) {
        select_tr = tb_tbody.find("tr:first");
    }
   
    //注册划过事件,初始华所有的样式
    TableRowMove(tb_tbody);
    //单击事件，并标记选中行
    TableRowClick(tb_tbody, do_function);
    //首次加载执行事件
    if (select_tr != null && select_tr.attr("NO") != null) {
        TableRowSelectRow(tb_tbody, select_tr);
        eval(do_function)(select_tr);
    }
    return select_tr;
}

function TableSorterRegist(table, select_tr, do_function) {
    tb_tbody = table.find("tbody").eq(0);
    return (TableSorter_BodyRegist(tb_tbody, select_tr, do_function));
}




function SortTable_U(table) {
    var tb_tbody_temp = table.find("tbody").eq(0);
    var tb_thead_temp = table.find("thead").eq(0);

    //破坏sort
    table.find("tbody").eq(0).remove();
    table.find("thead").eq(0).remove();
    //重新添加结构
    table.append(tb_thead_temp);
    table.append(tb_tbody_temp);
}


function TableNoSorterLoadRegist(table, select_tr, load_function, do_function, jsontable) {
    //考出结构
    var tb_tbody_temp = table.find("tbody").eq(0);
    var tb_thead_temp = table.find("thead").eq(0);

    //破坏sort
    table.find("tbody").eq(0).remove();
    table.find("thead").eq(0).remove();
    //重新添加结构
    table.append(tb_thead_temp);
    table.append(tb_tbody_temp);
    var tb_tbody = table.find("tbody").eq(0);
    //移出body里的项
    TableRowRemove(tb_tbody);
    //执行加载函数
    eval(load_function)(tb_tbody, jsontable);
    //注册排序
    //table.tablesorter();
    //注册标题，并返回选中的行
    return (TableSorter_BodyRegist(tb_tbody, select_tr, do_function));
}

//错误提示
function Show_Alter(message) {

    var mm = '<div id = "alter_div_show_tigerlee" class="ui-state-error ui-corner-all" style="padding: 0 .7em;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span><strong>提示:</strong>' + message + '</p></div>';
    $("body").prepend(mm);
    $('#alter_div_show_tigerlee').dialog({
        bgiframe: true,
        autoOpen: false,
        width: 380,
        show: 'slide',
        hide: 'slide',
        modal: false,
        stack: true,
        title: '提示',
        draggable: false,
        zIndex: $.maxzIndex || 33554431
    });
    $('#alter_div_show_tigerlee').dialog('open');
    $("#alter_div_show_tigerlee").fadeOut(5000, function() { $('#alter_div_show_tigerlee').remove() });


}

//加载一个表
function TableSorterLoadRegist_Double_Click(table, select_tr, load_function, click_function, doubleClick_function, jsontable) {
    //考出结构
    var tb_tbody_temp = table.find("tbody").eq(0);
    var tb_thead_temp = table.find("thead").eq(0);

    //破坏sort
    table.find("tbody").eq(0).remove();
    table.find("thead").eq(0).remove();
    //重新添加结构
    table.append(tb_thead_temp);
    table.append(tb_tbody_temp);
    var tb_tbody = table.find("tbody").eq(0);
    //移出body里的项
    TableRowRemove(tb_tbody);
    //执行加载函数
    eval(load_function)(tb_tbody, jsontable);
    //注册排序
    table.tablesorter();
    //注册标题，并返回选中的行
    return (TableSorter_BodyRegist_Double_Click(tb_tbody, select_tr, click_function, doubleClick_function));
}

///加载初始华一个表。并注册其单击与双击事件

function TableSorter_BodyRegist_Double_Click(tb_tbody, select_tr, click_function, doubleClick) {
    
    if (select_tr == null || select_tr.attr("NO") == null) {
        select_tr = tb_tbody.find("tr:first");
       
    }
 
    tb_tbody.find("tr").each(function() {
        if (select_tr != null && $(this).attr("NO") != null && select_tr.attr("NO") == $(this).attr("NO")) {
           
            //修正选择值
            select_tr = $(this);
            return;
        }
    });
  
    //注册划过事件,初始华所有的样式
    TableRowMove(tb_tbody);

    //单击事件，并标记选中行
    TableRowClick(tb_tbody, click_function);

    //双击事件
    TableRowDoubleClick(tb_tbody, doubleClick);
    //首次加载执行单击事件
    if (select_tr != null && select_tr.attr("NO") != null) {
        TableRowSelectRow(tb_tbody, select_tr);
        eval(click_function)(select_tr);
    }
    return select_tr;
}

//请求报表 报表编码 处理函数
function Show_Print_Cell_Code(code_path, do_function) {
    $.post("../Reports/Cell/GetCellPath.do?ActionName=GetCellPath&rnd=" + new Date(), { code: code_path }, function(json) {
        if (!json.error) {
            url = json.path;
            Show_Print_Cell(url, do_function);
        }
        else {
            alert(json.message);
        }
    }, "json");
}


//请求报表  
function Show_Print_Cell_Sever_Code(code_path, url_server, data, do_function) {
    $.post("../Reports/Cell/GetCellPath.do?ActionName=GetCellPath&rnd=" + new Date(), { code: code_path }, function(json) {
        if (json.error != 'true') {
            url = json.path;
            Show_Print_Cell_Sever(url, url_server, data, do_function)
        }
        else {
            alert(json.message);
        }
    }, "json");
}

//家载报表
function Show_Print_Cell_Sever_Code_Load(code_path, url_server, data, do_function) {
    $.post("../Reports/Cell/GetCellPath.do?ActionName=GetCellPath&rnd=" + new Date(), { code: code_path }, function(json) {
        if (json.error != 'true') {
            url = json.path;
            Show_Print_Cell_Sever_Load(url, url_server, data, do_function)
        }
        else {
            alert(json.message);
        }
    }, "json");
}

//请求的报表，显示的方法
function Show_Print_Cell(url, do_function) {
    $.OpenCell(url,  // Cell 模板 URL
                    '',                               // Cell 模板密码，如果无密码则为空串

                    function(cell) {                  // 成功时执行

                        // ocell = cell; // 保存 Cell 对象在全局变量中，供其他操作使用
                        eval(do_function)(cell);
                        cell.PrintPreview(0, 0); // 打印预览
                    },

                    function(msg) {                   // 失败时执行
                        // alert(msg);
                        $.nhisAlert(msg);
                        //   $("#Bt_Print_List").hide();

                    }

         );
}

//请求的报表，其他服务器信息，服务器所需参数，显示报表的方法
function Show_Print_Cell_Sever(url, url_server, data, do_function) {
    $.OpenCell(url,  // Cell 模板 URL
                    '',                               // Cell 模板密码，如果无密码则为空串

                    function(cell) {                  // 成功时执行

                        // ocell = cell; // 保存 Cell 对象在全局变量中，供其他操作使用

                        $.post(url_server, $.extend({ format_str: "yyyy-MM-dd HH:mm:ss" }, data), function(json) {
                            eval(do_function)(cell, json);
                            cell.PrintPreview(0, 0); // 打印预览
                        }, "json");


                    },

                    function(msg) {                   // 失败时执行
                        // alert(msg);
                        $.nhisAlert(msg);
                        //   $("#Bt_Print_List").hide();

                    }

         );
}


//请求的报表，其他服务器信息，服务器所需参数，显示报表的方法
function Show_Print_Cell_Sever_Load(url, url_server, data, do_function) {
    $.OpenCell(url,  // Cell 模板 URL
                    '',                               // Cell 模板密码，如果无密码则为空串

                    function(cell) {                  // 成功时执行

                        // ocell = cell; // 保存 Cell 对象在全局变量中，供其他操作使用

                        $.post(url_server, $.extend({ format_str: "yyyy-MM-dd HH:mm:ss" }, data), function(json) {
                            eval(do_function)(cell, json);
                            //cell.PrintPreview(0, 0); // 打印预览
                        }, "json");


                    },

                    function(msg) {                   // 失败时执行
                        // alert(msg);
                        $.nhisAlert(msg);
                        //   $("#Bt_Print_List").hide();
                    }

         );
}

function GetDate(dayadd) {
    var d, s = "";           // 声明变量。
    d = new Date();   // 创建 Date 对象。
    d.setUTCDate(d.getDate() + dayadd);
    s += d.getFullYear() + "-";   // 获取年份。
    s += IntintDate((d.getMonth() + 1) + "") + "-"; // 获取月份。
    s += IntintDate(d.getDate() + "");          // 获取日。
    return (s);                 // 返回日期。
}

function IntintDate(ss) {
    if (ss.length < 2) {
        ss = "0" + ss;
    }
    return ss;
}

function Text_Round3(control) {
    if (control.val().indexOf(".") != control.val().length - 1 && $.isNumber(parseFloat(control.val()))) {
        if (control.val().indexOf(".") < (control.val().length - 3)) {

            control.val(parseFloat(control.val()).round(3));
        }
    }

}
function Text_Round_Int(control) {
    if ($.isNumber(parseFloat(control.val()))) {
        control.val(parseFloat(control.val()).round(0));
    }
}


//加载一个表
function TableLoadRegist(table, select_tr, load_function, do_function, jsontable) {

    eval(load_function)(table, jsontable);
    //注册标题，并返回选中的行
    return (TableSorter_BodyRegist(table, select_tr, do_function));
}

//分页控件结成
function page_inf_regest(tablefoot, postdata, table, select_tr, load_function, do_function) {
    //获取到分页的信息
    //var Data = page_inf_post(tablefoot.attr("url"), tablefoot.find("input[tag='txt_pag_index']").eq(0).val(), tablefoot.find("span[tag='span_page_size']").eq(0).text(), postdata);
    var contral_index = tablefoot.find("input[tag='txt_pag_index']").eq(0);

    tablefoot.find("a[tag='a_page_end']").eq(0).click(function() {
        if (!$(this).attr("disabled")) {
            contral_index.val(tablefoot.find("span[tag='span_page_count']").eq(0).text());
            page_inf_post(tablefoot, postdata, table, select_tr, load_function, do_function);
        }
    });
    tablefoot.find("a[tag='a_page_first']").eq(0).click(function() {
        if (!$(this).attr("disabled")) {
            contral_index.val(1);
            page_inf_post(tablefoot, postdata, table, select_tr, load_function, do_function);
        }
    });
    tablefoot.find("a[tag='a_page_next']").eq(0).click(function() {
    if (!$(this).attr("disabled")) {
            contral_index.val(parseInt(contral_index.val()) + 1);
            page_inf_post(tablefoot, postdata, table, select_tr, load_function, do_function);
        }
    });
    tablefoot.find("a[tag='a_page_up']").eq(0).click(function() {
        if (!$(this).attr("disabled")) {
            contral_index.val(parseInt(contral_index.val()) - 1);
            page_inf_post(tablefoot, postdata, table, select_tr, load_function, do_function);
        }
    });

    tablefoot.find("input[tag='t_skip']").eq(0).click(function() {
        page_inf_post(tablefoot, postdata, table, select_tr, load_function, do_function);
    });

    tablefoot.find("input[tag='txt_pag_index']").eq(0).keyup(function(event) {
        if (event.keyCode == 13) {
            page_inf_post(tablefoot, postdata, table, select_tr, load_function, do_function);
        }
    });
}



//请求分页
function page_inf_post(tablefoot, postdata, table, select_tr, load_function, do_function) {
    var x = postdata();
    $.post(tablefoot.attr("url"), $.extend(x, { op_type: "Select", Page_Index: tablefoot.find("input[tag='txt_pag_index']").eq(0).val(), Page_Size: tablefoot.find("span[tag='span_page_size']").eq(0).text() }),
        function(json) {
            if (json.MessageCode == "ok") {
                table.empty();
                page_inf_load(tablefoot, postdata, table, select_tr, load_function, do_function, json.Data);
            }
            else {
                alert(json.Message);
            }
        }, "json");
}

//修正分页控件的值
function page_inf_load(tablefoot, postdata, table, select_tr, load_function, do_function, data) {
    //注册表体一系列样式和事件
    select_tr = TableLoadRegist(table, select_tr, load_function, do_function, data);
    

    //修正最大页码数据
   
    tablefoot.find("span[tag='span_page_row_count']").eq(0).text(data.Row_count);
    tablefoot.find("span[tag='span_page_count']").eq(0).text(data.Page_Count);
    tablefoot.find("span[tag='span_page_size']").eq(0).text(data.Page_Size);
    tablefoot.find("input[tag='txt_pag_index']").eq(0).val(data.Page_Index);
    //限制输入页码
    tablefoot.find("input[tag='txt_pag_index']").eq(0).forceNumber({
        min: 1,
        max: data.Page_Count, // 2^64 - 1
        scale: 0                   // decimal places
    });
    
    //修正按钮是否可按
    if (data.Page_Count == data.Page_Index || data.Page_Count <= 1) {
        tablefoot.find("a[tag='a_page_end']").eq(0).attr({ disabled: "disabled" });
    }
    else {
        tablefoot.find("a[tag='a_page_end']").eq(0).attr({ disabled: "" });
    }

    if (data.Page_Index <= 1) {
        tablefoot.find("a[tag='a_page_first']").eq(0).attr({ disabled: "disabled" });  
    }
    else {
        tablefoot.find("a[tag='a_page_first']").eq(0).attr({ disabled: "" });
    }
    

    if (data.Page_Index > 1) {
        tablefoot.find("a[tag='a_page_up']").eq(0).attr({ disabled: "" });
    }
    else {
        tablefoot.find("a[tag='a_page_up']").eq(0).attr({ disabled: "disabled" });
    }

    if (data.Page_Index == data.Page_Count || data.Page_Count <= 1) {
        tablefoot.find("a[tag='a_page_next']").eq(0).attr({ disabled: "disabled" });
    }
    else {
        tablefoot.find("a[tag='a_page_next']").eq(0).attr({ disabled: "" });
    }

}

function ShowBool(jd, message) {
    //alert(123);
    msg = '<div id="tiger_content"><div class="hint">' + message + '<span class="hint-pointer"></span></div><div>';
    $("body").prepend(msg);
    var imgWidth = 0;
    if ($(jd).next("img").length == 1) {
        imgWidth = $(jd).next("img").width();
    }

    $("#tiger_content div.hint").css({ 'left': (jd.offset().left + jd.width() + 16 + imgWidth) + "px",
        'top': (jd.offset().top) + "px",
        'z-index': $.maxzIndex
    });
    $("#tiger_content div.hint").show();
    jd.focus();
    $("#tiger_content div.hint").fadeOut(3000, function() { $('#tiger_content').remove() });
}

function TextBoxMovFocusStyle(contral) {

    contral.addClass("gray_input");
    contral.focus(function() {
        if ($(this).attr("defaultValue") == undefined)
            $(this).attr("defaultValue", $(this).val());

        if ($(this).val() == $(this).attr("defaultValue")) {
            $(this).val("");
            contral.removeClass("gray_input");
        }
        else {
            $(this).select();
        }
    }).blur(function() {
        if ($(this).val() == "") {
            $(this).val($(this).attr("defaultValue"));
            contral.addClass("gray_input");
        }

    });
}


function FitTextAreaLength(textArea, maxlength) {
    textArea.change(function() {
        if (textArea.val().length > maxlength) {

            textArea.text(textArea.val().substring(0, maxlength - 1));
        }

    });
    textArea.keydown(function() {
        if (textArea.val().length > 100) {

            textArea.text(textArea.val().substring(0, maxlength - 1));
        }

    });
}